
# 抛出异常 ：raise
"""
1. 概念 ： 在代码主动抛出异常 ，关键字 ：raise
2. 格式 ： raise 异常内容
"""

# 编写一个被0除的异常
def divide(a,b):
    if b == 0:
        raise ZeroDivisionError("被0整除，这是不允许的")
    else:
        return a / b

# divide(2,0)

try:
    result = divide(10,0)
    print("result:",result)
except ZeroDivisionError as e:
    print("被零除了:",e)
except Exception as e:
    print("未知异常:",e)


# 自定义异常类
class CustomError(Exception):

    # 构造方法
    def __init__(self,message):
        self.message = message


# 验证输入数据是否符合要求
def validata_input(data):
    if not isinstance(data,str):
        raise CustomError("输入数据类型必须是字符串")
    elif len(data) <= 6:
        raise CustomError("输入字符串长度必须至少是7位")
    else:
        return True


try:
    data = input("请输入一个字符串:")
    if validata_input(data):
        print("输入数据有效")
    else:
        print("输入数据无效")
except CustomError as e:
    print("不符合条件的输入:{}".format(e.message))